package org.example.pojo.vo;


import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.example.em.ProjectDelectStatus;
import org.example.validation.groups.Create;
import org.hibernate.validator.constraints.Length;

import java.util.Date;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class HouProjectOv {
    //组队者信息
    @ApiModelProperty("组队者昵称")
    private String nickname;
    @ApiModelProperty("组队者邮箱")
    private String email;
    @ApiModelProperty("组队者手机号")
    private String phone;

    /**
     * 项目ID，主键，自动递增
     */
    @NotNull(message = "[项目ID，主键，自动递增]不能为空")
    @ApiModelProperty("项目ID，主键，自动递增")
    private Integer id;
    /**
     * 创建人微信开放ID
     */
    @NotBlank(message = "[创建人微信开放ID]不能为空")
    @ApiModelProperty("创建人微信开放ID")
    private String creatorOpenid;
    /**
     * 项目名称
     */
    @NotBlank(message = "[项目名称]不能为空", groups = Create.class)
    @ApiModelProperty("项目名称")
    @Length(max = 100, message = "编码长度不能超过30")
    private String projectName;
    /**
     * 项目详细信息
     */

    @ApiModelProperty("项目详细信息")
    @NotNull(message = "[项目详细信息]不能为空", groups = Create.class)
    private String projectInfo;
    /**
     * 项目所属学校
     */
    @ApiModelProperty("项目所属学校")
    //@NotNull(message = "[项目所属学校]不能为空",groups = Create.class)
    private Integer school;
    /**
     * 项目方向
     */

    @ApiModelProperty("项目方向")
    @NotNull(message = "[项目方向]不能为空", groups = Create.class)
    private Integer direction;
    /**
     * 所需人数
     */
    @ApiModelProperty("所需人数")
    //表示跟数据表中的字段member_count对应
    @NotNull(message = "[所需人数]不能为空", groups = Create.class)
    private Integer memberCount;
    /**
     * 是否跨校：1-可以，2-不可以
     */
    @ApiModelProperty("是否跨校：1-可以，2-不可以")
    private Integer crossSchool;
    /**
     * 学历要求：1-大专，2-本科
     */
    @ApiModelProperty("学历要求：1-大专，2-本科")
    @NotNull(message = "[学历要求]不能为空", groups = Create.class)
    private Integer educationRequirement;
    /**
     * 技能要求(简)
     */
    @ApiModelProperty("技能要求(简)")
    private String skillSummary;
    /**
     * 技能要求(详细)
     */
    @ApiModelProperty("技能要求(详细)")
    private String skillDetails;
    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createdAt;
    /**
     * 修改日期，记录更新时自动更新为当前时间
     */
    @ApiModelProperty("修改日期，记录更新时自动更新为当前时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updatedAt;

    /**
     * 是否接受邮件推广
     */
    @ApiModelProperty("是否接受邮件推广")
    private boolean emailPromotion;
    /**
     * 阅读量
     */
    private Long lookcount;
    private Long applicationCount;
    @ApiModelProperty("学习能力强选项")
    private boolean study;

    /**
     * 项目推广状态
     */
    private ProjectDelectStatus emailPromotionStatus;

    public boolean getEmailPromotion() {
        return emailPromotion;
    }


}
